/*
 * 如果某个正则执行的函数中抛出(throw)了异常则该函数会停止执行
 * (其相应的栈帧从函数调用栈中弹出) 
 */

function divide(dividend,divisor){
    if( typeof dividend != 'number' ){
        let e = new Error( '被除数必须是number类型' ); // 创建Error对象的实例
        throw e ; // 抛出Error对象的实例
    }

    if( typeof divisor != 'number' ){
        let e = new Error( '除数必须是number类型' ); // 创建Error对象的实例
        throw e ; // 抛出Error对象的实例
    }

    if( divisor == 0 ){
        let e = new Error( '除数不能是零' ); // 创建Error对象的实例
        throw e ; // 抛出Error对象的实例
    }
    console.log( `求${dividend}除以${divisor}的商` );
    let result = dividend / divisor ;
    // 将求得的商返回给函数的调用者
    return result ;
}

// 通过函数名来调用函数求100除以2的商并将返回结果保存到result变量中
let result = divide(100, 2);
console.log( result );
